package 剑指offer;

public class 数值的整数次方 {
    //不得使用库函数
//    public double myPow(double x, int n) {
//          double res=1;
//          while (n>0){
//              if (n%2==1)
//                  res*=x;
//              x=x*x;
//              n/=2;
//          }
//          return res;
//    }
    public double myPow(double x, int n) {
        if (n==0)
            return 1;
        if (n==1)
            return x;
        if (n==-1)
            return 1/x;
        double half = myPow(x, n / 2);
        double mod = myPow(x, n % 2);
        return half*half*mod;
    }
}
